
<template>
  <ul>
    <li v-for="(item,index) in items" :key="item.id" >
      <!-- 绑定在 <slot> 元素上的 attribute 被称为 "slot props" (中文称作 "插槽prop" ) -->
      <slot :item="item" :index="index" name="default">
          <!-- 备用内容(Fallback Content) -->
          <span>{{ index + 1 }}</span>
          <span class="name">{{ item.name }}</span>
          <b>{{ item.price * item.discount }}(折扣价)</b>
          <s>{{ item.price }}(原价)</s>
          <span>{{ item.number }}</span>
          <span>{{ item.price * item.discount * item.number }}</span>
      </slot>
    </li>
  </ul>
</template>

<script>
// 使用 ES6 提供的支持将图片导入
import vueImage from '@/assets/vue.jpg';
import jspImage from '@/assets/jsp.jpg' ;

export default {
    name: 'Cart',
    data(){
        return {
            items: [
                { 
                    id: 1234 , 
                    name: 'Vue.js 3.0从入门到实战' , 
                    imgUrl: vueImage , 
                    price: 99.8, 
                    discount: 0.5 ,
                    number: 45 
                },
                { 
                    id: 4321 , 
                    name: 'React+Redux前端开发实战' , 
                    // 使用 require函数 将图片导入
                    imgUrl: require( '@/assets/react.jpg' ) , 
                    price: 69, 
                    discount: 0.929 , 
                    number: 41 
                },
                { 
                    id: 2222 , 
                    name: 'Spring Boot编程思想(核心篇)' , 
                    // 使用 require函数 将图片导入
                    imgUrl: require( '@/assets/springboot.jpg' ) , 
                    price: 118 , 
                    discount: 0.5 , 
                    number: 1 
                } ,
                { 
                    id: 3344 , 
                    name: 'Servlet/JSP深入详解' , 
                    imgUrl: jspImage , 
                    price: 139 ,
                    discount: 0.5 , 
                    number: 1 
                }
            ]
        }
    }
}
</script>

<style>
ul {
    margin: 0 ;
    padding: 0 ;
    list-style: none ;
}
li {
    display: flex ;
    border: 1px solid #dedede ;
    margin: 5px ;
}

li>* {
    flex-basis: 200px ;
}

li>.name {
    flex-basis: 300px ;
}
</style>